package com.restcloud.pojo.PersonalInformation;

import com.restcloud.pojo.Public.Code;
import com.restcloud.pojo.Public.Id;
import com.restcloud.pojo.Public.Value;
import lombok.Data;

import javax.xml.bind.annotation.*;
import java.util.List;

@XmlAccessorType(XmlAccessType.FIELD)
@Data
public class Receiver {

    public Receiver() {
    }

    public Receiver(String typeCode) {
        this.typeCode = typeCode;
    }

    @XmlAttribute(name = "typeCode")
    private String typeCode;

    @XmlElement(name = "telecom")
    private Code telecom;

    @XmlElement(name = "targetMessage")
    private Value targetMessage;

    @XmlElement(name = "device")
    private Device device;

    @XmlElement(name = "patient")
    private Device patient;

    @XmlElement(name = "registrationEvent")
    private Device registrationEvent;

    @XmlElement(name = "queryId")
    private Id queryId;

    @XmlElement(name = "queryResponseCode")
    private Code queryResponseCode;

    @XmlElement(name = "assignedEntity")
    private Device assignedEntity;

    @XmlElement(name = "queryMatchObservation")
    private Device queryMatchObservation;

    @XmlElement(name = "coverageRecord")
    private Device coverageRecord;

    @XmlElement(name = "beneficiary")
    private Device beneficiary;

    @XmlElementWrapper(name = "acknowledgementDetail")
    @XmlElement(name = "text")
    private List<Value> acknowledgementDetail;

    public String getTypeCode() {
        return typeCode;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

    public Code getTelecom() {
        return telecom;
    }

    public void setTelecom(Code telecom) {
        this.telecom = telecom;
    }

    public Value getTargetMessage() {
        return targetMessage;
    }

    public void setTargetMessage(Value targetMessage) {
        this.targetMessage = targetMessage;
    }

    public Device getDevice() {
        return device;
    }

    public void setDevice(Device device) {
        this.device = device;
    }

    public Device getPatient() {
        return patient;
    }

    public void setPatient(Device patient) {
        this.patient = patient;
    }

    public Device getRegistrationEvent() {
        return registrationEvent;
    }

    public void setRegistrationEvent(Device registrationEvent) {
        this.registrationEvent = registrationEvent;
    }

    public Id getQueryId() {
        return queryId;
    }

    public void setQueryId(Id queryId) {
        this.queryId = queryId;
    }

    public Code getQueryResponseCode() {
        return queryResponseCode;
    }

    public void setQueryResponseCode(Code queryResponseCode) {
        this.queryResponseCode = queryResponseCode;
    }

    public Device getAssignedEntity() {
        return assignedEntity;
    }

    public void setAssignedEntity(Device assignedEntity) {
        this.assignedEntity = assignedEntity;
    }

    public Device getQueryMatchObservation() {
        return queryMatchObservation;
    }

    public void setQueryMatchObservation(Device queryMatchObservation) {
        this.queryMatchObservation = queryMatchObservation;
    }

    public Device getCoverageRecord() {
        return coverageRecord;
    }

    public void setCoverageRecord(Device coverageRecord) {
        this.coverageRecord = coverageRecord;
    }

    public Device getBeneficiary() {
        return beneficiary;
    }

    public void setBeneficiary(Device beneficiary) {
        this.beneficiary = beneficiary;
    }

    public List<Value> getAcknowledgementDetail() {
        return acknowledgementDetail;
    }

    public void setAcknowledgementDetail(List<Value> acknowledgementDetail) {
        this.acknowledgementDetail = acknowledgementDetail;
    }
}
